74<?php 
class Remessa extends Zend_Db_Table
{
	protected $_name =  'remessa';

	/**
	 * Retorna a query SQL a ser utilizada para retornar os dados
	 * @return String
	 */
	public static function getQuery($id)
	{
		$select =   " SELECT r.idRemessa, r.dataRemessa, a.idAmostra, a.inicial,e.nomeLongo,e.tipoResultado,"; 
		$select .=  "  CASE re.resposta";
		$select .=  " WHEN 'P' Then 'POS'";
		$select .=  " WHEN 'N' Then 'NEG'";
		$select .=  " WHEN 'I' Then 'IND'";
		$select .=  " WHEN 'R' Then 'REP'";
		$select .=  " END AS resposta,";
		$select .=  " re.valor1, re.valor2,  m.nome as metodologia, k.nome as kitsorologia";
		$select .=  " FROM  remessa r inner join  liberacao_rotina lr on (r.idliberacaorotina=lr.idliberacaorotina)";
		$select .=  " inner join resultado re on(lr.idrotina=re.idrotina)";
		$select .=  " inner join exame e on(e.idexame=re.idexame)";
		$select .=  " inner join amostra a on(a.idamostra=re.idamostra)";
		$select .=  " inner join metodologia m on (m.idMetodologia=re.idMetodologia)";
		$select .=  " inner join kitsorologia k on(k.idKitSorologia=re.idKitSorologia)";
		$where = " where r.idCliente = " . $id;

		$select .= $where;
		
                
		return $select;
	}
	public function lista($cliente,array $request)
	{
		$dados = array();
		
		$select = $this->select()
		               ->from($this, 'count(distinct idRemessa) as qtd')
		               ->where('idCliente = ?',$cliente);
		               
    	$result = $this->fetchRow($select);
   
        if($result->qtd > 0){
            $total_pages = ceil($result->qtd / $request['rows']);
        }else{
            $total_pages = 0;
        }

        if($request['page'] == 1){
            $start = 0;
        }else{
            $start = ($request['rows'] * $request['page']) - $request['rows'];
        }
        
       $dados['total']	= $total_pages;
       $dados['page']	= $request['page'];
       $dados['records'] = $result->qtd;
       // Obtem a query da lista remessa
       // Foi separado para podermos reutilizar no RemessaController.php
       $select = self::getQuery($cliente);

       if($request['sidx']){
            $select .= " ORDER BY " . $request['sidx']  . " " . $request['sord'] . " LIMIT " . $start ." , ". $request['rows'];
        }else{
            $select .=  " LIMIT " . $start ." , ". $request['rows'] ;
        }
		
     	$remessa = $this->_db->fetchALL($select);
			
		for ($cont =0; $cont < count($remessa); $cont++)
		{
					$dados['rows'][$cont]['id'] = $remessa[$cont]['idRemessa'];
					$dados['rows'][$cont]['cell'] = array(  $remessa[$cont]['idRemessa'],
										$remessa[$cont]['dataRemessa'],
										trim($remessa[$cont]['idAmostra']).'('.trim($remessa[$cont]['inicial']).')',
										trim($remessa[$cont]['nomeLongo']).'('.trim($remessa[$cont]['tipoResultado']).')',
										trim($remessa[$cont]['resposta']).'('.trim($remessa[$cont]['valor1']).':'.trim($remessa[$cont]['valor2']).')',													
										$remessa[$cont]['metodologia'],
										$remessa[$cont]['kitsorologia'],
										);
	}
	return $dados;
    }
}
?>